/*
 * @(#)UserAddServiceImpl.java 创建于 2014年3月14日 
 * 
 * Copyright (c) 2013-2014 by Drow.  
 *
 */
package com.hangxin.basic.service.impl;

import java.util.Map;
import java.util.Random;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.hangxin.basic.dao.CompanyDao;
import com.hangxin.basic.dao.UserDao;
import com.hangxin.basic.model.LoginInfo;
import com.hangxin.basic.service.UserService;
import com.hangxin.commons.service.impl.BasicServiceImpl;
import com.hangxin.commons.util.MD5Util;
import com.hangxin.commons.util.PageModel;

/**
 * 
 * 类名称：UserAddServiceImpl.java
 * <P/>
 * 类描述： 添加登录用户service接口实现方法
 * <P/>
 * 创建时间：2014年3月14日
 * <P/>
 * 创建人： 段志杨
 * <P/>
 * 联系方式：315874529@qq.com
 * <P/>
 * 修改人：无
 * <P/>
 * 修改时间：无
 * <P/>
 * 修改备注：无
 * <P/>
 * 版本：v1.0
 * 
 */
@Service
public class UserServiceImpl extends BasicServiceImpl implements UserService
{
	@Resource
	private UserDao userDao;
	@Resource
	private CompanyDao companyDaoImpl;
	/**
	 * 
	 * 功能描述：用户信息管理模块，添加登录用户service接口方法实现
	 * <P/>
	 * 创建时间：2014年3月17日
	 * <P/>
	 * 创建人：  段志杨  
	 * <P/>
	 * 联系方式：  315874529@qq.com
	 * 
	 * @param username
	 * @param employeeid
	 * @param companyid
	 * @return
	 */
	@Override
	public String userAdd(LoginInfo loginInfo)
	{
		int result = 0;
	    Random rand = new Random();
	    result = rand.nextInt(999999);
 
		//String p=("000000".substring((result+"").length())+result);
	    String p="123456";
		String pass=MD5Util.encode(p);
		Object[] params={loginInfo.getUserName(),loginInfo.getRealName(),pass,loginInfo.getState(),loginInfo.getCompanyid(),loginInfo.getApplicant()};
		if(userDao.userAdd(params)){
			return p;
		}
		return null;
	}
	/**
	 * 
	 * 功能描述：用户信息管理模块，获取所有登录用户信息service接口方法实现
	 * <P/>
	 * 创建时间：2014年3月17日
	 * <P/>
	 * 创建人：  段志杨  
	 * <P/>
	 * 联系方式：  315874529@qq.com
	 * 
	 * @return
	 */
	@Override
	public PageModel getAllUser(PageModel pageModel,String userName,String realName,Integer state)
	{
		Object[] paramscount= new Object[]{"%"+userName+"%","%"+realName+"%",state};
		Object[] params= new Object[]{"%"+userName+"%","%"+realName+"%",state,(pageModel.getPageNo() - 1) * pageModel.getPageSize(),pageModel.getPageNo() * pageModel.getPageSize()};
		return userDao.getAllUser(pageModel,paramscount,params);
	}
	
	
	/**
	 * 
	 * 功能描述：添加登录用户时验证用户名是否已经存在
	 * <P/>
	 * 创建时间：2014年3月19日
	 * <P/>
	 * 创建人： 段志杨 
	 * <P/>
	 * 联系方式： 315874529@qq.com
	 * 
	 * @param id
	 * @return
	 */
	@Override
	public Integer checkName(String username){
		Object[] params= new Object[]{username};
		return userDao.checkName(params);
	}
	/**
	 * 
	 * 功能描述：删除登录用户
	 * <P/>
	 * 创建时间：2014年3月19日
	 * <P/>
	 * 创建人： 段志杨 
	 * <P/>
	 * 联系方式： 315874529@qq.com
	 * 
	 * @param id
	 * @return
	 */
	@Override
	public Integer userFor(Integer state,Long id){
		Object[] params= new Object[]{state,id};
		Integer flag=0;
		try
		{
			if(userDao.userFor(params)>0){
			flag=1;
			}
		} catch (Exception e)
		{
			throw new RuntimeException(e);
		}
		return flag;
	}
	/**
	 * 
	 * 功能描述：根据id查找用户
	 * <P/>
	 * 创建时间：2014年3月19日
	 * <P/>
	 * 创建人： 段志杨 
	 * <P/>
	 * 联系方式： 315874529@qq.com
	 * 
	 * @param id
	 * @return
	 */
	public Map<String,Object> findUser(Long id){
		Object[] params= new Object[]{id};
		return userDao.findUser(params);
	}
	
	/**
	 * 
	 * 功能描述：根据id修改登录用户service接口
	 * <P/>
	 * 创建时间：2014年3月19日
	 * <P/>
	 * 创建人： 段志杨 
	 * <P/>
	 * 联系方式： 315874529@qq.com
	 * 
	 * @param id
	 * @return
	 */
	@Override
	public void editUser(LoginInfo loginInfo)
	{
		Object[] params= new Object[]{loginInfo.getRealName(),loginInfo.getCompanyid(),loginInfo.getState(),loginInfo.getId()};
		userDao.editUser(params);
	}
	/**
	 * 
	 * 功能描述：重置密码
	 * <P/>
	 * 创建时间：2014年3月19日
	 * <P/>
	 * 创建人： 段志杨 
	 * <P/>
	 * 联系方式： 315874529@qq.com
	 * 
	 * @param id
	 * @return
	 */
	@Override
	public Integer setPass(Long id)
	{
		String p="123456";
		String pass=MD5Util.encode(p);
		Object[] params= new Object[]{pass,id};
		return userDao.setPass(params);
	}
	/**
	 * 
	 * 功能描述：修改密码
	 * <P/>
	 * 创建时间：2014年3月19日
	 * <P/>
	 * 创建人： 段志杨 
	 * <P/>
	 * 联系方式： 315874529@qq.com
	 * 
	 * @param id
	 * @return
	 */
	@Override
	public Integer setUserPass(Long id,String pass)
	{
		String pass1=MD5Util.encode(pass);
		Object[] params= new Object[]{pass1,id};
		return userDao.setUserPass(params);
	}
	
	/**
	 * 
	 * 功能描述：添加登录用户角色service接口实现方法
	 * <P/>
	 * 创建时间：2014年3月19日
	 * <P/>
	 * 创建人： 段志杨 
	 * <P/>
	 * 联系方式： 315874529@qq.com
	 * 
	 * @param id
	 * @return
	 */
	public void addUserRole(Long id,Long rid)
	{
		Object[] params= new Object[]{id,rid};
		userDao.addUserRole(params);
	}
	/**
	 * 
	 * 功能描述：根据登录用户id获取对应角色
	 * <P/>
	 * 创建时间：2014年3月24日
	 * <P/>
	 * 创建人： 段志杨 
	 * <P/>
	 * 联系方式： 315874529@qq.com
	 * 
	 * @param id
	 * @return
	 */
	public PageModel<Map<String, Object>> getUserRole(Long id)
	{
		PageModel pageModel=new PageModel();
		pageModel.setPageSize(30);
		Object[] params= new Object[]{id};
		return userDao.getUserRole(pageModel,params);
	}
	/**
	 * 
	 * 功能描述：判断roleid是否存在
	 * <P/>
	 * 创建时间：2014年3月24日
	 * <P/>
	 * 创建人： 段志杨 
	 * <P/>
	 * 联系方式： 315874529@qq.com
	 * 
	 * @param id
	 * @return
	 */
	public Integer delRid(long id)
	{
		Object[] params= new Object[]{id};
		return userDao.delRid(params);
	}
	
	
	
}
